home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d18
/
nrpas13.arc
/
FGAUSS.DEM
< prev
next >
Wrap
Text File
|
1991-05-01
|
1KB
|
46 lines
PROGRAM d14r10(input,output);
(* driver for routine FGAUSS *)
CONST
npt=3;
nlin=2;
na=6; (* na=3*nlin *)
TYPE
glnparam = ARRAY [1..na] OF real;
VAR
e1,e2,f,x,y : real;
i,j : integer;
a,dyda,df : glnparam;
(*$I MODFILE.PAS *)
(*$I FGAUSS.PAS *)
BEGIN
a[1] := 3.0; a[2] := 0.2; a[3] := 0.5;
a[4] := 1.0; a[5] := 0.7; a[6] := 0.3;
writeln;
writeln('x':6,'y':8,'dyda1':9,'dyda2':8,'dyda3':8,
'dyda4':8,'dyda5':8,'dyda6':8);
FOR i := 1 to npt DO BEGIN
x := 0.3*i;
fgauss(x,a,y,dyda,na);
e1 := exp(-sqr((x-a[2])/a[3]));
e2 := exp(-sqr((x-a[5])/a[6]));
f := a[1]*e1+a[4]*e2;
df[1] := e1;
df[4] := e2;
df[2] := a[1]*e1*2.0*(x-a[2])/(a[3]*a[3]);
df[5] := a[4]*e2*2.0*(x-a[5])/(a[6]*a[6]);
df[3] := a[1]*e1*2.0*sqr(x-a[2])/(a[3]*a[3]*a[3]);
df[6] := a[4]*e2*2.0*sqr(x-a[5])/(a[6]*a[6]*a[6]);
writeln('from FGAUSS');
write(x:8:4,y:8:4);
FOR j := 1 to 6 DO write(dyda[j]:8:4);
writeln;
writeln('independent calc.');
write(x:8:4,f:8:4);
FOR j := 1 to 6 DO write(df[j]:8:4);
writeln;
writeln
END
END.